package com.zhuiyun.project.api.system.role.mapper;

import com.zhuiyun.project.api.system.role.entity.SysRole;
import com.zhuiyun.project.api.system.user.entity.SysUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


/**
* @Author Acer
 *
 * 角色  数据层
 */

@Mapper
public interface SysRoleMapper {
    /**
     * @Author hyp
     * @Description 角色详情分页查询
     * @Date 2023/10/26 14:38
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sysRole
     */
    List<SysRole> listRoles(SysRole sysRole);

    /**
     * @Author hyp
     * @Description 根据角色编号删除角色信息
     * @Date 2023/10/26 14:36
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param roleIds
     */
    int removeRoleByIds(Long[] roleIds);

    /**
     * @Author hyp
     * @Description 新增角色信息
     * @Date 2023/10/26 14:36
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param role
     */
    int addRole(SysRole role);

    /**
     * @Author hyp
     * @Description 根据角色编号查询角色信息
     * @Date 2023/10/26 14:35
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param roleId
     */
    SysRole getInfoRoleById(Long roleId);

    /**
     * @Author hyp
     * @Description 修改角色信息
     * @Date 2023/10/26 14:34
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param role
     */
    int editRole(SysRole role);

    /**
      * @Author hyp
      * @Description 校验角色名称是否唯一
      * @Date 2023/10/26 14:56
      * @Return com.zhuiyun.project.api.system.role.entity.SysRole
      * @param roleName
    */
    SysRole checkRoleNameUnique(String roleName);
    /**
     * @Author hyp
     * @Description 校验角色权限标识是否唯一
     * @Date 2023/10/26 15:04
     * @Return boolean
     * @param roleKey
     */
    SysRole checkRoleKeyUnique(String roleKey);

    /**
     * @Author hyp
     * @Description 获得当前登录用户所拥有的角色
     * @Date 2023/10/30 19:06
     * @Return java.lang.String
     * @param loginName
     */
    List<SysRole> selectRoleByLoginName(String loginName);

    /**
     * @Author hyp
     * @Description 查询用户的角色
     * @Date 2023/11/2 9:48
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param userId
     */
    List<SysRole> selectRolePermissionByUserId(Long userId);
}
